package main

import (
	"log"
	"net"

	"github.com/spf13/viper"
)

//读取配置文件并初始化一些配置选项

func initConfig() {
	config := viper.New()
	config.AddConfigPath("../conf/")
	config.SetConfigName("b")
	config.SetConfigType("ini")
	if err := config.ReadInConfig(); err != nil {
		if _, ok := err.(viper.ConfigFileNotFoundError); ok {
			log.Println("无法找到配置文件.....")
			panic("配置文件异常")
		} else {
			log.Println("配置文件出错", err)
			panic("配置文件异常")
		}
	}
	ipAddress := config.GetString("server.ipAddress")
	listenPort := config.GetString("server.port")
	redisHost := config.GetString("redis.host")
	passWord := config.GetString("redis.password")
	maxIdle := config.GetInt("redis.maxIdle")
	maxActive := config.GetInt("redis.maxActive")
	idleTimeout := config.GetInt("redis.idleTimeout")

	//进行服务器的初始化
	log.Println("读取配置成功，正在初始化=======")
	log.Printf("服务正在启动，在%d端口启动的监听 . . . . ", listenPort)

	listen, err := net.Listen("tcp", ipAddress+":"+listenPort)
	//当服务器启动时 就初始化redis 连接池
	if err != nil {
		log.Panic("net.Listen err = ", err)
	}
	defer listen.Close()
	initPool("1.15.136.124:6379", "liu15332", 8, 0, 300)
	//在pool初始化后 在进行调用 防止空指针
	initUserDao()
}
